package com.geekhalo.admin.domain.user.create;

import com.geekhalo.lego.core.command.CommandService;
import com.geekhalo.lego.core.command.CommandServiceDefinition;
import com.geekhalo.lego.core.command.CommandMethodDefinition;

import com.geekhalo.admin.domain.user.User;
import com.geekhalo.admin.domain.user.UserCommandRepository;

import com.geekhalo.admin.domain.user.create.CreateUserCommand;
import com.geekhalo.admin.domain.user.create.CreateUserContext;
import com.geekhalo.admin.domain.user.User;


@CommandServiceDefinition(domainClass = User.class, repositoryClass = UserCommandRepository.class)
public interface CreateUserService
    extends CommandService<CreateUserCommand, User> {

    @Override
    @CommandMethodDefinition(contextClass = CreateUserContext.class)
    User execute(CreateUserCommand command);
}
